package mylab.demo.usm.biz.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import mylab.annotation.rds.ColumnComment;
import mylab.commons.web.mvc.entity.BaseGroupEntity;
import mylab.starters.mybatis.handler.CommaToListTypeHandler;
import mylab.starters.mybatis.interceptor.impl.foreignKey.ForeignKey;

import java.util.List;

/**
 * <p>
 * 用户聚合：如果部分用户的使用场景是相对一致和基础的，我们可以把这些用户打包成一个组，基于这个组的对象进行角色和权限的赋予
 * 参见 RBAC3 模型概念
 * </p>
 */
@Getter
@Setter
@ApiModel("用户组表")
@TableName(autoResultMap = true)
public class SysUserGroup extends BaseGroupEntity<SysUser> {

    @ForeignKey(SysUser.class)
    @ColumnComment("用户id列表")
    @ApiModelProperty(value = "用户id列表")
    @TableField(typeHandler = CommaToListTypeHandler.class)
    private List<String> itemIds;
}
